home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-09-18 | 89.7 KB | 1,934 lines |
- CIA
- Cellular InterActions
-
-
- Ein Tabellenkalkulationsprogramm
-
-
- Dokumentation
-
- Fertiggestellt am 27. Nov. 1991
-
- Programm und Dokumentation
- (c) 1991 by Michael Marte.
-
-
-
-
-
- CIA ist Shareware !
-
-
- INHALTSVERZEICHNIS
-
- 1. VORBEMERKUNGEN
-
- 1. 1. Begriffsvereinbarungen
- 1. 2. Bereichswahl
-
- 2. DAS 'DATEI'-MENUE
-
- 2. 1. Arbeitsblatt öffnen (F1)
- Darstellung des Arbeitsblattes
- 2. 2. Arbeitsblatt schließen (F2)
- 2. 3. Arbeitsblatt sichern (F3)
- 2. 4. Bereich schreiben
- 2. 5. Daten lesen (F3)
- 2. 6. Directory
- 2. 7. Datei löschen
- 2. 8. Datei umbenennen
- 2. 9. Programm starten
- 2.10. Programm beenden (CONTROL + Q)
-
- 3. DAS 'DRUCKER'-MENUE
-
- 3. 1. Bereich drucken (F5)
- Aufteilung des Bereichs
- Rand, Spalten- und Zeilenindizes
- Druckvorgang bei Verwendung von Einzelpapier
- Druckvorgang bei Verwendung von Endlospapier
- Ende des Druckvorgangs
- 3. 2. Konfiguration erstellen
- Aufbau der Quelldatei
- 3. 3. Neue Konfiguration laden
- 3. 4. Voreinstellungen editieren
- 3. 5. Voreinstellungen laden
- 3. 6. Voreinstellungen speichern
-
- 4. DAS 'BEARBEITEN'-MENUE
-
- 4. 1. Arbeitsblattdarstellung definieren
- 4. 2. Zahlendarstellung definieren
- 4. 3. Spaltenbreite definieren
- 4. 4. Zeilenhöhe definieren
- 4. 5. Cursor setzen (F6)
- 4. 6. Zelle editieren (F7)
- Das Eingabefenster
- Die Eingabemodi
- Aktivierung des Eingabefensters
- Der Zellentyp
- Die Schriftattribute
- Die Schriftfarbe
- Die Ausgabeformatierung
- Die Zellenbegrenzungen
- Die Sichtbarkeit
- Der Löschschutz
- Abschluß der Eingabe
- MATHEMATISCHE AUSDRÜCKE
- Liste der Operanden
- 1. Konstanten
- 2. Direkter Zellenzugriff
- 3. Zellenzugriff mittels Benennungen
- 4. Zugriff auf andere Arbeitsblätter
- 5. Funktionen
- 6. Klammernausdrücke
- Vorzeichen
- Operatoren
- Der Stack
- Fehlermeldungen im Arbeitsblatt
- Rechen(un)genauigkeit
- Definitionsbereiche
- 4. 7. Löschen (CONTROL + K)
- 4. 8. Benennen (CONTROL+N)
- 4. 9. Durchrechnen (F8)
- 4.10. Nachberechnung (F9)
- 4.11. Iterationen (CONTROL + I)
- Internas
- Beeinflussung der Geschwindigkeit
- Rekursion
- 4.12. Suchen (CONTROL + F)
- Der Suchvorgang
- 4.13. Erneut suchen (CONTROL + A)
- 4.14. Fehler zeigen (CONTROL + D)
-
- 5. DAS 'BLOCK'-MENUE
-
- Zur Blockdefinition und -darstellung
- Blockdefinition per Maus
- Blockdefinition per Tastatur
- 5. 1. Bereich -> Block (F10)
- 5. 2. Blockstart definieren (CONTROL + S)
- 5. 3. Blockende definieren (CONTROL + E)
- 5. 4. Demarkieren (CONTROL + H)
- 5. 5. Kopieren (CONTROL + C)
- 5. 6. Kopieren nach (ALTERNATE + C)
- 5. 7. Verschieben (CONTROL + M)
- 5. 8. Verschieben nach (ALTERNATE + M)
- 5. 9. Bearbeiten (CONTROL + W)
-
- 6. DIE CURSORSTEUERUNG
-
- 6. 1. Cursorsteuerung per Maus
- 6. 2. Cursorsteuerung per Tastatur
-
- 7. WEITERE MAUSKOMMANDOS
-
- 7. 1. Zelle kopieren
- 7. 2. Zelle verschieben
- 7. 3. Zelle löschen
- 7. 4. Zelle durchrechnen
-
- 8. TIP(S) & TRICK(S)
-
- 8. 1. Arbeitsblattgröße verändern
-
- 9. FEHLER UND FEHLERMELDUNGEN
-
- 9. 1. Allgemeines
- 9. 2. Liste der Fehlermeldungen
-
- 10. INTERNAS
-
- 10. 1. Dateikennungen
- 10. 2. Versionsnummern
- 10. 3. Konfiguration und Programmstart
- 10. 4. Datenformate
- Header für alle Systemdateien
- Das Arbeitsblatt-Format
- Das Block-Format
- Das Konfigurations-Format
- Das Druckervoreinstellungs-Format
- Das DIF-Format
- Das CVS-Format
-
- 11. LISTE DER FUNKTIONEN
-
- 11. 1. Exponential- und Logarithmusfunktionen
- 11. 2. Trigonometrische Funktionen
- 11. 3. Sonstige mathematische Funktionen
- 11. 4. Rundungsfunktionen
- 11. 5. Logische Funktionen
- 11. 6. Konstanten
- 11. 7. Statistikfunktionen
- 11. 8. Arbeitsblattfunktionen
- 11. 9. Sonstige nicht-mathematische Funktionen
-
- 12. LISTE DER OPERATOREN
-
- 12. 1. Logische Operatoren (Priorität 1)
- 12. 2. Vergleichsoperatoren (Priorität 2)
- 12. 3. Addition und Subtraktion (Priorität 3)
- 12. 4. Multiplikation und Division (Priorität 4)
- 12. 5. Potenzierung (Priorität 5)
-
- 1. VORBEMERKUNGEN
-
- 1. 1. Begriffsvereinbarungen
- Im folgenden Text ist mit aktueller Zelle immer die Zelle gemeint, in
- der der Cursor steht. Korrespondierend dazu werden auch die Begriffe
- aktuelle Spalte und aktuelle Zeile verwendet.
- Mit dem aktuellen Arbeitsblatt ist immer das Arbeitsblatt gemeint, bei
- dem die Randelemente des Fensters aktiviert sind.
- Unter dem Begriff Struktur des Arbeitsblattes ist das Ergebnis der
- geplanten Unterteilung des Arbeitsblattes und der Festlegung der Größe
- einzelner Zellen zu verstehen.
-
- 1. 2. Bereichswahl
- Viele Funktionen des Programms benötigen eine nähere Spezifikation des
- zu bearbeitenden Bereiches. Diese kann immer in einer Dialogbox
- vorgenommen werden. Es werden überall die gleichen Abkürzungen verwen-
- det. Hier nun die die sechs implementierten Bereiche :
-
- AB Alle Zellen im Arbeitsblatt sollen bearbeitet werden.
- BLOCK Alle Zellen im Block sollen bearbeitet werden. Ist kein Block
- definiert, so wird bei Anwahl dieses Bereiches eine Fehler-
- meldung ausgegeben.
- DISP. (Display) Alle Zellen im gerade angezeigten Auschnitt des
- Arbeitsblattes sollen bearbeitet werden.
- SPALTE Alle Zellen, die sich in der aktuellen Spalte befinden,
- sollen bearbeitet werden.
- ZEILE Alle Zellen, die sich in der aktuellen Zeile befinden,
- sollen bearbeitet werden.
- ZELLE Nur die aktuelle Zelle soll bearbeitet werden.
-
- 2. DAS 'FILE'-MENUE
-
- 2. 1. Arbeitsblatt öffnen (F1)
- Nach Wahl des Dateilaufwerks, -pfades und -namens wird das Arbeitsblatt
- geladen und geöffnet.
- Existiert das Arbeitsblatt noch nicht, so erscheint eine Dialogbox zur
- Erstellung eines neuen Arbeitsblattes. In dieser können die Dimensionen
- des Arbeitsblattes (max. 8192*8192 Zellen), die Breite und die Höhe
- für alle Zellen (je max. 255 Zeichen bzw. Zeilen) und die Anzahl der
- Nachkommastellen (max. 10) für alle Spalten vordefiniert werden. Es
- können max. vier Arbeitsblätter geöffnet werden.
-
- Darstellung des Arbeitsblattes :
- Am oberen Rand der Arbeitsfläche des Fensters werden die Spaltenindi-
- zes, am linken Rand die Zeilenindizes dargestellt. Die Zellen werden
- durch gepunktete Linien getrennt gezeichnet. Die Linien werden in der
- Schriftfarbe der jeweiligen Zelle (s. bei 'Editieren') dargestellt.
-
- 2. 2. Arbeitsblatt schließen (F2)
- Nach einer Sicherheitsabfrage wird das aktuelle Arbeitsblatt geschlos-
- sen.
- HINWEIS :
- Das Arbeitsblatt wird nicht abgespeichert !
-
- 2. 3. Arbeitsblatt sichern (F3)
- Das aktuelle Arbeitsblatt wird unter dem in der Titelzeile des Fen-
- sters aufscheinenden Dateinamen gesichert.
-
- 2. 4. Bereich schreiben
- Nach Anwahl dieser Funktion erscheint eine Dialogbox, in der der zu
- schreibende Bereich und das hierbei zu verwendende Datenformat bestimmt
- werden können. Nach Anwahl von SCHREIBEN kann in der File-Select-Box
- der Dateipfad, der Dateiname und das Laufwerk, auf das geschrieben
- werden soll, angegeben werden.
-
- Folgende Formate sind implementiert :
-
- CT Der angegebene Bereich wird als Arbeitsblatt abgespeichert und
- kann später als solches wieder geladen werden. Dabei werden
- folgende Zusatzinformationen mitgespeichert :
- - Die aktuelle Zelle.
- - Die Zahlendarstellung (s. bei 'Zahlendarstellung definieren').
- - Die eingestellte Schriftgröße und welche Begrenzungen gezeichnet
- werden sollen (s. bei 'Arbeitsblatt-Darstellung definieren').
- - Ob nach Eingaben eine automatische Nachberechnung erfolgen soll
- und der dabei zu bearbeitende Bereich (s. bei 'Nachberechnung').
- - Die Iterationstiefe (s. bei 'Iterationen').
- - Der Blockstart und das Blockende (s. bei 'Block definieren').
- - Die Benennungen (s. bei 'Benennen').
-
- Wird nur ein Teil des Arbeitsblattes im CT-Format geschrieben, so
- - wird als aktuelle Zelle die Zelle [1,1] gesetzt.
- - wird die Nachberechnung automatisch abgeschaltet.
- - werden keine Blockinformationen gespeichert.
- - werden keine Benennungen gespeichert.
-
- BLK Der angegebene Bereich wird im Block-Format gespeichert und kann
- später an eine andere Stelle oder in ein anderes Arbeitsblatt
- wieder eingelesen werden, alle bei der Eingabe vorgenommenen
- Einstellungen, z.B. Schriftstil, Textausrichtung, usw. bleiben
- erhalten. Es werden keine Zusatzinformationen gespeichert.
-
- ASC Der angegebene Bereich wird in die angegebene Datei im ASCII-
- Format 'gedruckt'. Dabei werden bestimmte Druckervoreinstellungen
- mitberücksichtigt, nämlich der 'Papiertyp (Einzel-/Endlospapier)',
- Seitenbreite und -höhe, Zwischenleerzeilen (bei 'Endlospapier')
- und ob Spalten-/Zeilenindizes geschrieben werden sollen. Damit
- läßt sich die Ausgabe sehr schön formatieren, z.B. zur Weiterver-
- arbeitung in einer Textverarbeitung. Zur Seitenaufteilung siehe
- bei 'Arbeitsblatt drucken'.
-
- DIF Der angegebene Bereich wird im DIF-Format geschrieben. Das bedeu-
- tet konkret, daß Strings wie eingegeben geschrieben werden. Bei
- Zellen mit mathematischen Inhalt wird entweder das Ergebnis oder
- der Ausdruck (s. bei 'Zahlendarstellung definieren'), bei Trenn-
- zellen eine die Zelle ausfüllende Zeichenkette geschrieben.
- Dieses Format kann von vielen Programmen geladen werden (auch von
- CIA), somit steht einem Datenaustausch mit anderen Programmen
- nichts im Wege. Der Nachteil dieses Formates ist der, daß
- Datensätze nicht von einander getrennt werden können, da eine
- hierfür notwendige Markierung bei diesem Format nicht vorgesehen
- ist.
-
- CVS Der angegebene Bereich wird im CVS-Format geschrieben, wie was
- geschrieben wird, s. beim DIF-Format.
- Auch dieses Format kann von vielen anderen Programmen gelesen
- werden. Dabei besteht allerdings nicht der Nachteil des DIF-
- Formates, Datensätze, oder in diesem Falle Zeilen, können pro-
- blemlos voneinander getrennt werden.
-
- 2. 5. Daten lesen (F4)
- Nach Anwahl dieser Funktion erscheint eine Dialogbox, in der das zu
- lesende Datenformat bestimmt werden kann. Will man eine DIF-Datei
- laden, so muß zusätzlich die Anzahl der Datenfelder pro Datensatz
- angegeben werden, damit läßt sich das oben erwähnte Problem der
- fehlenden Markierung für Datensatzenden lösen. Als Feature beim Laden
- von DIF- und CVS-Dateien besteht zusätzlich noch die Möglichkeit
- festzulegen, ob gelesene Datenfelder, falls möglich, tokenisiert werden
- sollen. Hierbei ist die Option MIT EDITIEREN hervorzuheben : Sie
- erlaubt das Editieren von Datenfeldern, die als Ausdrücke erkannt
- wurden, während des Lesevorgangs (mehr s. unten). Nach Anwahl von LESEN
- kann in der File-Select-Box der Dateipfad, der Dateiname und das
- Laufwerk, von dem gelesen werden soll, angegeben werden.
-
- Folgende Formate sind implementiert :
-
- CT Nach einer Sicherheitsabfrage wird das angegebene Arbeitsblatt
- geladen. Dabei wird das aktuelle Arbeitsblatt überschrieben. In
- dieser Programmversion werden bis auf die Cursorposition alle
- gespeicherten Zusatzinformationen beachtet.
- HINWEIS :
- Konnte das Arbeitsblatt nicht geladen werden (Ladefehler, Spei-
- chermangel), so wird das alte Arbeitsblatt geschlossen, da zu
- diesem Zeitpunkt bereits einige Daten überschrieben sind.
-
- BLK Der Block in der angegebenen Datei wird ab der Cursorposition in
- das Arbeitsblatt eingelesen, die Struktur desselben bleibt dabei
- unverändert.
- HINWEISE :
- Der Block muß ins Arbeitsblatt passen.
- Der Inhalt geschützter Zellen wird nicht verändert, die gelesene
- Zelle wird einfach vergessen.
-
- ASC Dieses Format kann nicht gelesen werden.
-
- DIF Die Daten aus der angegebenen Datei werden ab der Cursorposition
- wie ein Block in das Arbeitsblatt eingelesen, am Ende eines jeden
- Datensatzes wird ein Zeilensprung durchgeführt. Nach dem Lesen
- eines Datenfeldes wird, falls gewünscht, versucht, dieses zu
- tokensieren, d.h. es wird überprüft, ob das Feld einen mathema-
- tischen Ausdruck enthält. Ist dies der Fall, so wird der Ausdruck
- berechnet, das Ergebnis wird rechtsbündig dargestellt. Wurde die
- Option MIT EDITIEREN gewählt, so wird jetzt das Eingabefenster
- aktiviert, und das Datenfeld kann editiert werden. Somit ist es
- z.B. möglich zu verhindern, daß Nummerierungen innerhalb des Ar-
- beitsblattes ungewollt als Zahlen mit Nachkommastellen ausgegeben
- werden. Dazu muß lediglich der Zellentyp geändert werden, es sind
- aber auch alle anderen Operationen möglich (s. bei 'Editieren').
- Wurde die Eingabe abgeschlossen, so wird das Eingabefenster deak-
- tiviert und der Lesevorgang wird fortgesetzt. Konnte das Feld
- nicht tokenisiert werden, so wird es als String abgespeichert und
- linksbündig dargestellt. Aber auf jeden Fall werden alle einge-
- stellten Schriftattribute gelöcht, als Schriftfarbe wird die
- Farbe 1 gesetzt. Die Struktur des Arbeitsblattes wird nicht
- verändert.
- HINWEISE :
- Der Inhalt geschützter Zellen wird nicht verändert, das gelesene
- Datenfeld wird einfach vergessen.
- Der Lesevorgang wird abgebrochen, wenn
- - die letzte Zelle einer Zeile erreicht ist und ein Datensatz
- noch nicht komplett gelesen werden konnte.
- - die letzte Zelle der aktuellen Spalte erreicht ist und sich noch
- Datensätze in der Datei befinden.
-
- CVS Die Daten aus der angegebenen Datei werden wie ein Block ab der
- Cursorposition in das Arbeitsblatt eingelesen. Ein Zeilensprung
- wird immer dann durchgeführt, wenn das Ende eines Datensatzes
- erreicht ist. Wie was verarbeitet wird und was nicht passieren
- darf, s. beim DIF-Format.
-
- 2. 6. Directory
- 2. 7. Datei löschen
- 2. 8. Datei umbenennen
- 2. 9. Programm starten
- Diese Funktionen sind in dieser Version noch nicht implementiert.
-
- 2.10. Programm beenden (CONTROL + Q)
- Nach einer Sicherheitsabfrage wird CIA in Richtung des aufrufenden
- Programms (normalerweise der Desktop) verlassen.
- HINWEIS :
- Diese Funktion kann nur aufgerufen werden, wenn kein Arbeitsblatt
- geöffnet ist.
-
- 3. DAS 'DRUCKER'-MENUE
-
- 3. 1. Bereich drucken (F5)
- Nach einer Bereichsabfrage wird der eingestellte Bereich gedruckt.
- Dabei werden sämtliche Druckervoreinstellungen berücksichtigt.
- HINWEIS :
- Zum Drucken muß ein Treiber geladen sein.
-
- Aufteilung des Bereichs :
- Je nach Papier- und Arbeitsblattgröße muß der Bereich in einzelne
- Seiten aufgeteilt werden. Dies geschieht automatisch während des
- Druckvorgangs. Die Aufteilung erfolgt immer zuerst in horizontaler,
- dann in vertikaler Richtung. Es werden immer nur ganze Zellen gedruckt.
- HINWEIS :
- Sollte das Papierformat zu klein sein, d.h. Zellen müßten abgeschnitten
- werden, so wird der Druckvorgang abgebrochen.
-
- Rand, Spalten- und Zeilenindizes :
- Vor jeder Zeile wird eine definierte Anzahl von Leerzeichen (s. bei
- 'Druckervoreinstellungen'), und falls gewünscht, der Zeilenindex ausge-
- geben. Zu Beginn einer jeden Seite werden, falls so eingestellt, die
- Spaltenindizes unterstrichen ausgegeben.
-
- Druckvorgang bei Verwendung von Einzelpapier :
- Wird Einzelpapier verwendet, so wird der Anwender vor jeder Seite (auch
- vor der Ersten !) aufgefordert, ein neues Blatt Papier einzulegen, hier
- besteht auch die Möglichkeit, den Druckvorgang abzubrechen.
-
- Druckvorgang bei Verwendung von Endlospapier :
- Wird Endlospapier verwendet, so wird nach jeder gedruckten Seite eine
- definierte Anzahl von Leerzeilen ausgegeben (s. bei
- 'Druckervoreinstellungen'), um z.B. die Perforation zu überspringen.
- Der Druckvorgang kann nicht abgebrochen werden.
-
- Ende des Druckvorgangs :
- Ist der Druckvorgang beendet, so wird der Drucker zurückgesetzt.
-
- 3. 2. Konfiguration erstellen
- Diese Funktion erstellt aus einer ASCII-Datei eine für den Druckertrei-
- ber verwendbare Datendatei. Dies geschieht nach Wahl des Quelldatei-
- laufwerks, -pfades und -namens, für die Quelldatei ist die Extension
- 'HEX' vorgesehen. Die erstellte Anpassung wird unter demselben Pfad und
- Namen wie die Quelldatei gespeichert, allerdings mit der Extension
- 'CFG'. Will man diese Anpassung sofort verwenden, so muß diese erst mit
- Hilfe der Funktion 'Konfiguration laden' geladen werden.
-
- Aufbau der Quelldatei :
- Kommentare werden mit vorangestelltem '*' gekennzeichnet. Vor jeder
- Datenzeile muß ein Code stehen, der den Inhalt der Zeile
- 'identifiziert', die Codes von 0-31 sind für bestimmte Steuerzeichen-
- folgen (s. unten), die Codes von 32-255 für den normalen ASCII-
- Zeichensatz vorgesehen. Die Reihenfolge, in der die Codes samt Anhang
- in dieser Datei stehen, ist völlig belanglos. Das Ende der Liste wird
- durch den Code 0 signalisiert. Es müssen auch nicht alle Codes
- eingesetzt werden, der Druckertreiber wird später bei fehlendem Code
- einfach das entsprechende ASCII-Zeichen ausgeben (z.B. Space, A-Z, a-
- z). Es sollten aber unbedingt alle Steuerzeichenfolgen definiert
- werden, da die internen Codes, die CIA hierfür verwendet (s. unten),
- überhaupt nichts mit normalerweise bei Druckern üblichen Codes zu tun
- haben, so simple Dinge wie Zeilenvorschub, etc. würden nicht mehr
- funktionieren.
- Alle Datenbytes innerhalb einer Datenzeile werden durch Kommata vonein-
- ander getrennt. Alle Datenangaben müssen im Hexadezimal-Format erfol-
- gen, allerdings können einzelne Zeichen auch in Hochkommata eingeschlo-
- ssen werden. Für den Escape-Code (27=$1B) kann auch 'ESC' geschrieben
- werden. Es wird kein Unterschied zwischen Groß- und Kleinschreibung
- gemacht, außer bei den direkt als Zeichen angegebenen Codes.
-
- Hier ein Beispiel :
-
- ****** CIA - PRINTER CONFIGURATION ******
-
- * für den Drucker Schneider DMP-2000 *
-
- * An erster Stelle steht immer der Identifizierungs-Code !
- 01, 0D * Carriage Return
- 02, 0A * Line feed
- 03, 08 * Backspace
- 04, 0C * Form feed
- 05, 07 * Bleeper
- 06, ESC, '@' * Printer Reset
- 0A, ESC, 'x', 00 * Standardschrift an
- 0B, ESC, 'x', 01 * NLQ-Schrift an
- 0C, ESC, 'x', 00, 0F* Schmalschrift an
- 14, ESC, 'E' * Fett an
- 15, ESC, 'F' * Fett aus
- 16, 00 * Hell an
- 17, 00 * Hell aus
- 18, ESC, '4' * Kursiv an
- 19, ESC, '5' * Kursiv aus
- 1A, ESC, '-', 01 * Unterstreichen an
- 1B, ESC, '-', 00 * Unterstreichen aus
- 1C, 00 * Outlined an
- 1D, 00 * Outlined aus
- 1E, 00 * Schattiert an
- 1F, 00 * Schattiert aus
-
- * Das folgende Stück wurde aus einer Anpassung
- * für WORDPLUS direkt übernommen.
- 23, 1B, 52, 0, 23 * # from USA fount
- 24, 1B, 52, 0, 24 * $ from USA fount
- 40, 1B, 52, 0, 40 * @
- 5B, 1B, 52, 0, 5B * [
- 5C, 1B, 52, 0, 5C * \
- 5D, 1B, 52, 0, 5D * ]
- 5E, 1B, 52, 0, 5E * ^
- 60, 1B, 52, 0, 60 * '
- * 7B, 1B, 52, 0, 7B * {
- * Diese Zeile könnte z.B. auch so geschrieben werden :
- '{', ESC, 52, 0, 7B
- 00 * Ende der Tabelle
-
- 3. 3. Neue Konfiguration laden
- Nach Wahl des Dateilaufwerks, -pfades und -namens wird eine neue
- Druckerkonfiguration geladen, eine eventuell schon vorhandene Konfigu-
- ration wird gelöscht.
- HINWEIS :
- Nach dem Programmstart wird automatisch die erste Druckerkonfiguration,
- die im Hauptverzeichnis oder in dem Ordner, aus dem das Programm
- gestartet wurde, gefunden wird, geladen.
-
- 3. 4. Voreinstellungen editieren
- Nach Anwahl dieser Funktion erscheint eine Dialogbox, in der folgende
- Einstellungen vorgenommen werden können :
-
- - Druckerport : Parallel (Centronics) oder Seriell (RS232).
- - Papiertyp : Einzel- oder Endlospapier.
- - Papierformat : Spalten/Seite und Zeilen/Seite.
- - Anzahl der Leerzeilen (zum Überspringen der Perforation).
- - Offset zum linken Rand.
- - Spalten- und/oder Zeilenindizes oder auch nicht.
- - Schrifttyp : Standard-, NLQ- oder Schmalschrift.
-
- HINWEIS :
- Verstellt man den Schrifttyp, so sollte man auf alle Fälle darauf
- achten, auch die Papierbreite zu verändern.
-
- 3. 5. Voreinstellungen laden
- Nach Wahl des Dateilaufwerks, -pfades und -namens wird eine neue
- Druckervoreinstellung geladen, eine eventuell schon vorhandene Vorein-
- stellung wird gelöscht. Für Druckervoreinstellungen ist die Extension
- 'PST' vorgesehen.
- HINWEIS :
- Nach dem Programmstart wird automatisch die erste Datei mit Druckervor-
- einstellungen, die im Hauptverzeichnis oder in dem Ordner, aus dem das
- Programm gestartet wurde, gefunden wird, geladen.
-
- 3. 6. Voreinstellungen speichern
- Nach Wahl des Dateilaufwerks, -pfades und -namens wird die Druckervor-
- einstellung gespeichert.
-
- 4. DAS 'BEARBEITEN'-MENUE
-
- 4. 1. Arbeitsblattdarstellung definieren
- Der Inhalt eines jeden Arbeitsblattes kann in vier verschiedenen
- Schriftgrößen dargestellt werden. Außerdem ist es in jedem Arbeitsblatt
- möglich zu bestimmen, welche Zellenbegrenzungen gezeichnet werden
- sollen. Nach Anwahl dieser Funktion erscheint also eine Dialogbox, in
- der die diversen Einstellungen vorgenommen werden können :
-
- - 6x 6 : Iconschrift.
- - 8x 8 : Standardeinstellung für mittlere Auflösung.
- - 8x16 : Standardeinstellung für hohe Auflösung.
- - 16x16 : Ziemlich groß.
-
- - Horizonatale Begrenzung : Unterhalb der Zelle.
- - Vertikale Begrenzung : Rechts von der Zelle.
-
- HINWEISE :
- Zum Editieren des Arbeitsblattes empfiehlt sich die jeweilige Standard-
- einstellung. Die kleinen Schriften eignen sich vorzüglich, um z.B.
- großflächige Blockoperationen vorzunehmen oder um das Layout des
- Arbeitsblattes zu begutachten. Schaltet man auf eine kleine Schrift um,
- so sollte man auch gleich die horizontale Zellenbegrenzung entfernen,
- da man ansonsten vor lauter Linien nichts mehr sieht, außerdem wird das
- Arbeitsblatt schneller gezeichnet.
-
- 4. 2. Zahlendarstellung definieren
- Es ist möglich, für jedes Arbeitsblatt eine andere Zahlendarstellung zu
- definieren. Nach Anwahl der Funktion erscheint eine Dialogbox, in der
- folgende Einstellungen vorgenommen werden können (Standardeinstellungen
- in Fettschrift):
-
- - Ergebnis- oder Ausdrucksdarstellung.
- - Deutsche oder Amerikanische Zahlendarstellung.
- - Vorzeichen vor oder hinter der Zahl.
-
- Bei der deutschen Zahlendarstellung wird zur Gliederung des Vorkomma-
- teils einer Zahl der Punkt verwendet. Zur Trennung des Vorkommateils
- vom Nachkommateil wird das Komma eingesetzt. Im amerikanischen System
- werden die beiden Zeichen, Punkt und Komma, genau umgekehrt verwendet.
- HINWEIS :
- Ergebnisse, die ungleich Null, aber kleiner als 10-5 oder größer als
- 1011-1 sind, werden in der Exponentialform dargestellt, ein eventuell
- vorhandenes negatives Vorzeichen wird dabei immer vor dem Ergebnis
- ausgegeben.
-
- 4. 3. Spaltenbreite definieren
- Diese Funktion erlaubt es, die Breite aller Zellen der Cursorspalte
- sowie die Anzahl der in diesen Zellen darzustellenden Nachkommastellen
- in einer Dialogbox zu definieren. Die Breite darf die Werte 1-255
- (Zeichen) annehmen, die Anzahl der Nachkommastellen 1-10.
-
- 4. 4. Zeilenhöhe definieren
- Diese Funktion erlaubt es, die Höhe aller Zellen der Cursorzeile in
- einer Dialogbox zu definieren. Die Höhe darf Werte von 1-255 (Zeilen)
- annehmen.
-
- 4. 5. Cursor setzen (F6)
- Nach Anwahl dieser Funktion erscheint eine Dialogbox, in der verschie-
- dene Funktionen durch Anclicken angewählt werden können :
-
- - Cursor zum Spaltenanfang (CONTROL + Cursor rauf)
- - Cursor zum Spaltenende (CONTROL + Cursor runter)
- - Cursor zum Zeilenbeginn (CONTROL + Cursor links)
- - Cursor zum Zeilenende (CONTROL + Cursor rechts)
-
- - Ausschnitt nach oben (SHIFT + Cursor rauf)
- - Ausschnitt nach unten (SHIFT + Cursor runter)
- - Ausschnitt nach links (SHIFT + Cursor links)
- - Ausschnitt nach rechts (SHIFT + Cursor rechts)
-
- - Cursor zum Blockstart (ALTERNATE + S)
- - Cursor zum Blockende (ALTERNATE + E)
-
- Außerdem kann der Cursor auf eine bestimmte Zelle gesetzt werden. Dazu
- müssen die Koordinaten in dem Format Spalte/ Zeile eingegeben werden,
- nach Click auf das Eingabefeld oder Return wird der Cursor gesetzt.
-
- 4. 6. Zelle editieren (F7)
-
- Das Eingabefenster :
- befindet sich direkt unter der Menuezeile. Es besteht aus einer 80x4
- Zeichen großen Arbeitsfläche. Es läßt sich nicht verschieben, auch die
- Größe kann nicht verändert werden.
-
- Die Eingabemodi :
- CIA kennt drei Eingabemodi, in jedem sieht das Eingabefenster anders
- aus :
- 1. Kein Arbeitsblatt ist geöffnet, das Eingabefenster ist gelöscht.
- 2. Mindestens ein Arbeitsblatt ist geöffnet, im Eingabefenster werden
- permanent die Nummer des aktuellen Arbeitsblattes, die Koordinaten
- der Zelle, in der sich der Cursor befindet, und deren Inhalt
- (Nichts, Ausdruck, String oder Trennzeichen) angezeigt.
- 3. Die Funktion 'Zelle editieren' wurde angewählt, das Eingabefenster
- ist aktiviert, d.h. der Zelleninhalt kann editiert werden. Das
- Fenster, in dem sich das aktuelle Arbeitsblatt befindet, ist
- deaktiviert. Es kann nur im Eingabefenster gearbeitet werden.
-
- Aktivierung des Eingabefensters :
- Das Eingabefenster läßt sich auf vier verschiedene Arten aktivieren :
- 1. Durch Anwahl des Menuepunktes 'Editieren'.
- 2. Durch Betätigung der Taste F7.
- 3. Durch Doppelclick auf die zu editierende Zelle. Der Cursor wird
- automatisch gesetzt.
- 4. Durch Click auf das Eingabefenster.
-
- Danach kann der Zelleninhalt bearbeitet werden. Eingaben, also mathema-
- tische Ausdrücke oder Texte, können in der dafür vorgesehenen Eingabe-
- zeile vorgenommen werden, die Maximallänge beträgt 255 Zeichen.
- Neben den obligatorischen Tastaturkommandos Cursor links und rechts
- stehen noch die Folgenden zur Verfügung :
- CONTROL + Cursor links setzt den Cursor an den Zeilenanfang. CONTROL +
- Cursor rechts entsprechend an das Zeilenende. Delete löscht das Zeichen
- auf der Cursorposition.
- Backspace löscht das Zeichen links vom Cursor.
- ESC löscht die Eingabezeile. UNDO stellt den ursprünglichen Inhalt (was
- in der Zelle steht) wieder her.
-
- Außerdem kann jede Zelle mit einer Vielzahl von Attributen versehen
- werden, hiermit läßt sich das Arbeitsblatt gestalten. Die Attribute
- können sowohl per Maus als auch per Tastatur bearbeitet werden.
-
- Der Zellentyp :
- In CIA existieren vier Zellentypen :
- 1. Leerzellen.
- 2. Zellen, die einen mathematischen Ausdruck beinhalten, z.B. '9',
- '1973.78' oder 'COS(0.5)^2+SIN(0.5)^2'.
- 3. Zellen, die einen String beinhalten, z.B. 'Summe :'.
- 4. Sogenannte Trennzellen, die nur ein Zeichen beinhalten, welches dann
- benutzt wird, die jeweilige Zelle in ganzer Breite damit ausgefüllt
- darzustellen. Somit lassen sich schnell und speichersparend Bereiche
- voneinander abgrenzen oder Ergebnisse hervorheben. Außerdem müssen
- bei einer späteren Spaltenverbreiterung Trennlinien nicht mehr
- manuell angepasst werden.
-
- Editiert man eine bis zu diesem Zeitpunkt leere Zelle, so wird der
- Zellentyp automatisch auf 'Ausdruck' gestellt. Der Zellentyp kann mit
- den Tasten F1-F4 eingestellt werden.
-
- Die Schriftattribute :
- CIA stellt folgende Schriftattribute zur Verfügung :
- Fett, Hell, Kursiv und Unterstrichen.
- Diese Attribute können beliebig miteinander kombiniert werden, sie
- werden im Arbeitsfenster und auf dem Drucker dargestellt.
- Das Setzen oder Löschen eines Schriftattributes kann mit CONTROL + F1-
- F4 vorgenommen werden.
-
- Die Schriftfarbe :
- Es kann bei mittlerer Auflösung zwischen vier, in hoher Auflösung
- zwischen zwei Schriftfarben gewählt werden. Der Zelleninhalt und die
- Zellenbegrenzungen werden dann auf dem Bildschirm in dieser Farbe
- dargestellt. Die Schriftfarbe kann mit SHIFT-links + F1-F4 gewählt
- werden.
-
- Die Ausgabeformatierung :
- Es existieren vier Möglichkeiten, die Ausgabeformatierung innerhalb
- einer Zelle zu beeinflussen. Dabei ist der Inhalt der Zelle völlig
- belanglos. Die Anwahl der gewünschten Ausgabeformatierung kann mittels
- ALTERNATE + F1-F4 erfolgen.
-
- 1. Ausgabe linksbündig :
- Der Zelleninhalt wird ganz links in der Zelle ausgegeben. Ist der
- Inhalt zu lang, so wird dieser rechts abgeschnitten.
- 2. Ausgabe rechtsbündig :
- Der Zelleninhalt wird so ausgegeben, daß dieser am rechten Ende der
- Zelle anstößt. Ist der Inhalt zu lang, so wird er links abgeschnit-
- ten.
- 3. Ausgabe zentriert :
- Der Zelleninhalt wird in die Mitte der Zelle positioniert. Ist der
- Inhalt zu lang, dann erfolgt die Ausgabe linksbündig.
- 4. Ausgabe formatiert :
- Der Zelleninhalt wird so ausgegeben, daß er die ganze Zelle
- ausfüllt, d.h. in eventuell schon vorhandene Zwischenräume werden,
- wenn notwendig, noch Leerzeichen eingefügt. Ist der Zelleninhalt zu
- lang, dann erfolgt die Ausgabe wieder linksbündig.
-
- Die Zellenbegrenzungen :
- In dieser Programmversion ist es möglich, die rechte vertikale Zellen-
- begrenzung zu entfernen und damit die Zelle um die rechts darauffol-
- gende Zelle zu verbreitern. Diese Zelle wird also von der Zelle links
- davon überlappt, ihr Inhalt wird nicht mehr angezeigt, er bleibt aber
- erhalten. Es ist auch weiterhin möglich, diese Zelle anzuwählen und sie
- zu bearbeiten. Entfernt man die Zellenbegrenzung bei dieser schon
- überlappten Zelle, so wird die erste Zelle nochmals um die rechts von
- der überlappten Zelle liegenden Zelle erweitert. Das Ganze ist ungefähr
- so schwierig zu beschreiben wie zu programmieren. In diesem Falle geht
- Probieren über Studieren ! Die vertikale Zellenbegrenzung kann mit
- SHIFT- rechts + F2 gesetzt oder gelöscht werden.
-
- Die Sichtbarkeit :
- Der Zelleninhalt kann 'unsichtbar' gemacht werden, d.h. er wird nicht
- mehr dargestellt, weder auf dem Bildschirm, noch auf dem Drucker, etc.,
- es ist aber jederzeit möglich, ihn wieder zu bearbeiten. Diese Option
- kann mittels SHIFT-rechts + F3 gesetzt oder gelöscht werden.
-
- Der Löschschutz :
- Ist diese Option aktiviert, so kann der Inhalt der betreffenden Zelle
- von keiner Funktion mehr gelöscht werden, außer von der Eingabefunktion
- selbst. Zellen mit besonders wichtigem oder kompliziertem Inhalt sollte
- man auf alle Fälle schützen. Der Löschschutz kann durch SHIFT-rechts +
- F4 aktiviert oder deaktiviert werden.
-
- Abschluß der Eingabe :
- Die Eingabe kann durch Return oder durch Click auf das Eingabefeld
- abgeschlossen werden. Ist das Eingabefeld zu diesem Zeitpunkt leer, so
- wird der Zellentyp automatisch auf 'Leerfeld' gesetzt. Ansonsten wird
- je nach Zellentyp folgendermaßen vorgegangen :
- 1. Zellentyp=Leerfeld :
- Die Zelle wird gelöscht, ein eventuell vorhandener Löschschutz hat
- hier keine Wirkung.
- 2. Zellentyp=Ausdruck :
- Der eingegebene Ausdruck wird tokenisiert. Tritt beim dabei durchge-
- führten Syntaxcheck ein Fehler auf, so wird die Eingabe
- (zwangsweise) fortgesetzt. War die Syntax korrekt, so wird der
- Ausdruck und das Ergebnis der nach dem Check erfolgten Berechnung
- übernommen. Zur Syntax und Berechnung von Ausdrücken s. unten.
- 3. Zellentyp=String :
- Der eingegebene String wird ohne Änderung übernommen.
- 4. Zellentyp=Trennfeld :
- Das erste Zeichen des eingegebenen Strings wird als Trennzeichen
- übernommen.
-
- Kommt es zu einer Fehlermeldung wegen Speichermangels, so wird die
- Eingabe (zwangsweise) fortgesetzt.
- Ein Anclicken des ABBRUCH-Buttons bewirkt ebenfalls den Abschluß der
- Eingabe, allerdings werden alle gemachten Änderungen ignoriert.
- Nach abgeschlossener Eingabe wird der neue Zelleninhalt im Fenster
- dargestellt, das Eingabefenster deaktiviert und auf Eingabe-Modus zwei
- geschaltet (s. oben) und das Fenster, in dem sich das aktuelle
- Arbeitsblatt befindet, aktiviert.
-
- MATHEMATISCHE AUSDRÜCKE
- werden genauso wie in gängigen Hochsprachen (z.B. Basic, C, Modula-2,
- usw.) gebildet und berechnet. Ein Ausdruck setzt sich aus einem oder
- mehreren Operanden zusammen, im zweiten Fall werden diese durch Opera-
- toren miteinander verknüpft.
-
- Liste der Operanden :
- 1. Konstanten
- CIA (oder besser : GFA-Basic) kann Zahlen im Bereich von 10-999 bis
- 10999 verarbeiten, bei einer Genauigkeit von 12 Stellen.
- Konstanten müssen im Dezimalsystem eingegeben werden. Der Punkt gilt
- als Komma. Zifferngruppen dürfen nicht getrennt werden (z.B. falsch
- ist '198,987.89'). Es kann allerdings auch die Normdarstellung
- verwendet werden, bei der Mantisse und Exponent direkt angegeben
- werden :
- 1.76E+6 = 1.76*106 = 1760000
- 1E-9 = 1*10-9 = 0.000000001 = 1 Milliardstel
-
- 2. Direkter Zellenzugriff
- Will man auf den Inhalt einer Zelle zugreifen, so muß man die
- Koordinaten dieser Zelle in eckigen Klammern und durch ein Komma
- voneinander getrennt angegeben, z.B.: [10,15]
- [20+5*[1,10],25-[4,3]]
- HINWEISE :
- Ob nun direkt auf das in der angesprochenen Zelle gespeicherte
- Ergebnis zugegriffen oder ob der Ausdruck noch einmal berechnet
- wird, hängt von der eingestellten Iterationstiefe ab (s. bei
- 'Iterationen').
- Auf nicht-existente Zellen sowie auf Zellen mit nicht-mathematischen
- Inhalt darf nicht zugegriffen werden. Auf Zellen, die zwar einen
- Ausdruck beinhalten, dessen Ergebnis aber nicht berechnet werden
- konnte, darf nur dann zugegriffen werden, wenn die Iterationstiefe
- ausreichend zu einer nochmaligen Berechnung des Ausdrucks ist.
-
- 3. Zellenzugriff mittels Benennungen
- Der direkte Zellenzugriff ist zugegebenermaßen nicht besonders kom-
- fortabel, deshalb bietet CIA die Möglichkeit, Zellen oder auch
- ganze Bereiche mit einem Namen zu versehen (s. bei 'Benennen'). Für
- den Zugriff muß die entsprechende Benennung in geschweiften Klam-
- mern angegeben werden, z.B.: {SUMME}.
- HINWEISE :
- In der Benennung sind folgende Zeichen erlaubt :
- 0-9, A-Z, a-z, _, .
- Eine Benennung kann auch dann verwendet werden, wenn sie noch nicht
- definiert wurde, die Berechnung wird dann allerdings mit einer
- Fehlermeldung abgebrochen.
- Weiteres s. unter Punkt 2.
-
- 4. Zugriff auf andere Arbeitsblätter
- Auch der Zugriff auf andere Arbeitsblätter ist kein Problem, hier-
- für muß lediglich der in Anführungszeichen eingeschlossene Da-
- teipfad nach einem Komma den Koordinaten bzw. der Benennung hinzu-
- gefügt werden, z.B.:
- [1,2,"C:\SPREADSH.EET\TEST.CT"]
- [10,7,"\JANUAR"]
- {SUMME,"QUARTAL_1"}
- Standardmäßig sind folgende Zeichen im Dateipfad erlaubt:
- 0-9, A-Z, a-z, ö, ü, ä, Ö, Ü, Ä, \, _, ., §, :, ß
- Bei einer späteren Berechnung wird, falls keine Laufwerks- bzw.
- Ordnerangabe (ein einziges Backslash='\' vor dem eigentlichen Datei-
- namen verweist bereits auf die oberste Verzeichnisebene !) gemacht
- wurde, der Dateipfad automatisch um das Laufwerk bzw. den Ordner,
- auf bzw. in dem sich das Arbeitsblatt befindet, ergänzt. Sollte auch
- die Extension des Dateinamens fehlen, so wird dieser um den String
- '.CT' erweitert. Anschließend wird das gesamte Arbeitsblatt geladen
- (aber nicht dargestellt !). Auf diese Weise kann, falls dies die
- eingestellte Iterationstiefe erforderlich macht, programmintern
- schnell auch auf andere Zellen in diesem Arbeitsblatt zugegriffen
- werden. Im Rahmen einer iterativen Berechnung werden dann, falls
- notwendig, auch noch andere Arbeitsblätter nachgeladen. Sobald ein
- (Zwischen-)Ergebnis bestimmt ist, wird das jeweilige Arbeitsblatt
- wieder gelöscht. CIA kann max. 10 solcher 'unsichtbarer'
- Arbeitsblätter gleichzeitig im Speicher verwalten.
- HINWEISE :
- s. unter Punkt 2.
-
- 5. Funktionen
- CIA verfügt über eine Vielzahl von mathematischen, statistischen
- und logischen Funktionen (s. 'Liste der Funktionen'). Die meisten
- Funktionen benötigen noch Argumente, die bearbeitet werden sollen,
- diese können selbstverständlich auch wieder aus Ausdrücken be-
- stehen. Zur Einhaltung der Definitionsbereiche s. unten.
-
- 6. Klammernausdrücke
- werden durch eine runde offene Klammer '(' eingeleitet. Dann kann
- der Ausdruck beliebig fortgeführt werden, der Klammernausdruck muß
- mit einer runden geschlossenen Klammer ')' beendet werden.
-
- Vorzeichen :
- CIA kennt die Vorzeichen '+' und '-'. Der Negationsoperator '!' läuft
- ebenfalls unter Vorzeichen. Vorzeichen können in beliebiger Menge und
- Reihenfolge vor beliebige Operanden gestellt werden.
-
- Operatoren :
- CIA verfügt auch über eine Vielzahl von mathematischen und logischen
- Operatoren (s. 'Liste der Operatoren'). Ein Operator steht immer
- zwischen zwei Operanden. Was im Zusammenhang mit Operatoren besonders
- beachtet werden muß, ist deren Priorität. Diese Prioritäten (stehen
- ebenfalls in der Liste) bestimmen die Reihenfolge, in der die Operan-
- den miteinander verknüpft werden. So gilt z.B. auch in CIA die
- Rechenregel 'Punkt- vor Strichrechnung', da die Multiplikation und die
- Division eine höhere Priorität als Addition und Subtraktion haben.
- Klammern haben übrigens die höchste Priorität, sie sind allerdings
- keine Operatoren.
- Besonders hervorzuheben sind die logischen Verknüpfungen, deren Ergeb-
- nis immer ein Wahrheitswert, also TRUE=wahr=-1 oder FALSE=falsch=0,
- ist. Mit ihrer Hilfe ist es z.B. möglich, einer Zelle in Abhängigkeit
- von einer bestimmten Bedingung einen bestimmten Wert zuzuweisen. Damit
- eröffnet sich ein großes Gebiet von Anwendungen, für die man sonst eine
- Programmiersprache mit Anweisungen zur bedingten Befehlsausführung
- benötigen würde. Hier ein Beispiel : -100*([1,1]==14)+22*([1,1]==0)
- Wenn also die Zelle [1,1] den Wert 14 enthält, ergibt der erste
- Vergleich den Wert TRUE=-1. Multpliziert mit -100 ergibt sich 100. Der
- zweite Vergleich ergibt FALSE=0 und somit wird der gesamte zweite
- Summand 0. Das Endergebnis lautet 100.
- Enthält die Zelle [1,1] den Wert 0, so wird der erste Summand 0, der
- zweite 22 und das Endergebnis lautet 22.
- Enthält die Zelle [1,1] keinen der beiden Werte, so ergeben beide
- Vergleiche den Wert FALSE, der ganze Ausdruck wird 0.
-
- Der Stack
- ist eine Speicherstruktur, in der bei der Berechnung von Ausdrücken
- Zwischenergebnisse abgelegt werden. Durch die verwendeten Algorithmen
- und die relativ großzügige Bemessung des Stacks ist es jedoch äußerst
- schwierig, einen sogenannten 'Stacküberlauf' zu provozieren. Sollte
- dies denoch gelingen, z.B. durch wilde Klammernschachtelung, so muß der
- Ausdruck vereinfacht werden.
-
- Fehlermeldungen im Arbeitsblatt :
- Ist bei der Berechnung eines Ausdrucks ein Fehler aufgetreten, so wird
- anstelle des sowieso nicht korrekten Ergebnisses die Fehlernummer
- gespeichert. Der Fehler wird dann im Arbeitsblatt in der Form * ERROR x
- * dargestellt. Mit Hilfe der Funktion 'Fehler zeigen' kann die
- zugehörige Fehlermeldung im Klartext ausgegeben werden.
-
- Rechen(un)genauigkeit :
- Eine Quelle für Rechenungenauigkeiten stellt sicherlich die Anzahl der
- verfügbaren Nachkommastellen dar. Im Fließkommaformat können z.B. irra-
- tionale Zahlen wie π eben nur rational und dadurch oftmals nicht
- ausreichend genau dargestellt werden, um wirklich immer befriedigende
- Ergebnisse zu erhalten. Ein gutes Beispiel hierfür ist der Ausdruck
- COS(PI()/2). Für diesen würde man als Ergebnis Null erwarten, tatsäch-
- lich erhält man aber den Wert 1.42108547152E-14. Dieser ist zwar sehr
- klein und kann eigentlich vernachlässigt werden, dafür ist er aber bei
- der ersten Begegnung umso verwirrender. PI() ist eben kleiner als π.
- Und so kann es zu den sogenannten 'Rundungsfehlern' kommen, die
- natürlich immer größer werden, wenn ungenaue Näherungswerte auch noch
- in weiteren Berechnungen Verwendung finden.
- Verfahren zur Berechnung von trigonometrischen und logarithmischen
- Funktionen durch Reihen erzeugen im allgemeinen keine Fehler, sie
- können aber selbst nur Näherungswerte mit einer vorgegebenen Anzahl
- von Nachkommastellen errechnen.
- Auf eine andere Art von Fehlerquelle soll sozusagen pädagogisch hin-
- geführt werden : Geben Sie mal den denkbar einfachen Ausdruck
- 10000.00000001 ein und schauen Sie sich das Ergebnis an. Zugegeben,
- nicht allzu überraschend ! Denn vorausgesetzt die Zelle ist breit
- genug und die Anzahl der darzustellenden Nachkommastellen ausreichend
- groß (für diesen Fall wären zehn nicht schlecht), dann werden Ihnen
- elf Nullen, eingefaßt von zwei Einsen und grausam geteilt von einem
- Punkt, entgegenflimmern (in Zahlen : 10000.00000001). Editieren Sie
- diesen Ausdruck nun noch einmal und fügen Sie nach dem Komma noch eine
- Null ein. Nach erneuter Berechnung werden Sie wohl doch etwas stutzen,
- denn auf dem Bildschirm erscheint nicht wie erwartet 10000.000000001,
- sondern 10000.000000000.
- Um zu verstehen, wie es zu diesem dubiosen Ergebnis kommt, muß man die
- programminterne Darstellung von Fließkommazahlen betrachten. Wie schon
- erwähnt, werden diese in einer normierten Form, aufgeteilt in Mantisse
- und Exponent, gespeichert, wobei sich die gespeicherte Zahl aus der
- Formel
- Zahl=Mantisse*(10^Exponent)
- ergibt. Sowohl Mantisse als auch Exponent sind vorzeichenbehaftet. Die
- Mantisse selbst besteht aus einer Vor- und zwölf Nachkommastellen. Um
- möglichst viele Stellen hinter dem Komma speichern zu können, wird die
- Vorkommastelle immer mit einer Eins (intern wird alles binär dar-
- gestellt !) belegt (welche dann nicht gespeichert wird -> Platz für
- Nachkommastellen !). Das ist die Normdarstellung der Mantisse, wie sie
- auch gern von Naturwissenschaftlern verwendet wird. Immer wenn mit
- einer Fließkommazahl gerechnet wurde, wird deren Mantisse wieder nor-
- miert, d.h. diese wird solange nach links verschoben und der Exponent
- analog dazu so oft dekrementiert (d.h. eins wird subtrahiert), bis
- wieder eine Zahl ungleich Null vor dem Komma steht. Unsere Bei-
- spielzahl wird nun nach der Eingabe in die normierte Fließkommadarstel-
- lung gebracht. Dies geschieht, indem das Komma hinter die Eins vor-
- geschoben und der Exponent entsprechend erhöht wird. Aus
- 10000.000000001 wird 1.0000000000001E+4. Das Problem ist jetzt die
- zweite Eins, denn die steht nun an der 13. Nachkommastelle der
- Mantisse. Innerhalb der Mantisse können aber nur max. zwölf Stellen
- gespeichert werden. Fazit : Die 13. Stelle muß einfach wegfallen
- (Underflow !) und die Mantisse nimmt den Wert 1 an. Als Ergebnis
- ergibt sich somit der Wert 1E+4=10000.
- Man kann also feststellen, daß sich das erwartete Ergebnis im Fließkom-
- maformat schlicht und einfach nicht speichern läßt, da hierfür die
- Stellen ganz links und ganz rechts einfach zu weit auseinander liegen.
- Zahlen, bei denen die Beziehung
- (Nummer der ersten Vorkommastelle+Nummer der letzten Nach-
- kommastelle-1)>Anzahl der Nachkommastellen
- gilt, können also nicht gespeichert werden.
- Im konkreten Beispiel : 5+9-1=13>12.
-
- Definitionsbereiche :
- Die Einhaltung der Definitionsbereiche der Funktionen wird, wenn dies
- sinnvoll bzw. möglich ist, streng überwacht. Möglich ist es, wenn ein
- Argument lediglich auf einen bestimmten ganzzahligen Wert oder auf
- größer, kleiner oder gleich Null überprüft werden muß. Unmöglich wird
- es dann, wenn das Argument mit bestimmten irrationalen Werten ver-
- glichen werden müßte, wie dies bei der Tangens- und Cotangensfunktion
- der Fall wäre. (Die Definitionsbereiche dieser Funktionen weisen Lücken
- bei x=kπ+½π bzw. bei x=kπ auf.) Der Grund hierfür liegt in der schon
- zuvor aufgezeigten Problematik der Unmöglichkeit der Speicherung von
- irrationalen Zahlen im Fließkommaformat. Insbesondere die Periodizität
- dieser Funktionen würde große Schwierigkeiten bereiten.
-
- 4. 7. Löschen (CONTROL + K)
- Nach einer Bereichsabfrage wird der Inhalt aller nichtgeschützen Zellen
- im angegebenen Bereich hinweggetilgt, die Struktur des Arbeitsblattes
- bleibt dabei unverändert.
-
- 4. 8. Benennen (CONTROL+N)
- Wie schon weiter oben erwähnt, erlaubt es CIA, einzelne Zellen und
- auch ganze Bereiche mit einem Namen, einer Benennung zu versehen.
- Dabei ist die Anzahl der Benennungen, die definiert werden können,
- praktisch nur durch den Speicherplatz begrenzt.
- Nach Anwahl dieser Funktion erscheint eine umfangreiche Dialogbox,
- deren Bedienungselemente nun im einzelnen erklärt werden :
-
- Die Eingabefelder :
-
- ____________________ : [____,____]..[____,____]
-
- In dieser Zeile können sowohl die eigentliche Benennung als auch die
- Koordinaten des zu benennenden Bereichs definiert werden. Die einzelnen
- Felder können mit Hilfe der Cursor rauf- und runter-Tasten angewählt
- werden. Für die Benennung sind 20 Zeichen vorgesehen, mindestens ein
- Zeichen wird verlangt. Die Zeichen 0-9, A-Z, a-z, Tiefstrich und Punkt
- sind gültig. Für die Koordinaten, die wie beim direkten Zellenzugriff
- in der Form [x,y] angegeben werden müssen, sind entsprechend der max.
- Arbeitsblattgröße von 8192 x 8192 Zellen vier Stellen eingeplant.
-
- Die Bereichswahl :
- Durch Anclicken des gewünschten Bereichs ist es möglich, dessen
- Koordinaten in die Eingabefelder zu übernehmen, dadurch entfällt
- lästiges Notieren und Tippen.
-
- Das Übersichtsfeld :
- In diesem Feld zeigt CIA gleichzeitig acht Benennungen inklusive
- Koordinaten an, die Form der Anzeige entspricht dabei der der Ein-
- gabezeile. Diese Benennungen können allerdings nicht editiert werden.
- Von zentraler Bedeutung ist die Markierung, welche durch Anclicken der
- Pfeile nach oben oder unten verschoben werden kann. Wird die markierte
- Benennung angeclickt, so wird diese samt Koordinaten in die Eingabe-
- zeile übernommen. Ein Versetzen der Markierung mit sofortiger Übernahme
- kann auch durch einfaches Anclicken der gewünschten Benennung erfolgen.
- Eine Übernahme eines leeren Eintrags im Übersichtsfeld führt zum
- Löschen aller Eingabefelder. Weiters kann mit der Markierung bestimmt
- werden, welche Benennung gelöscht werden soll (s. unten).
- Der angezeigte Ausschnitt kann wie von der Bedienung der GEM-Fenster
- her gewohnt sowohl durch mehrmaliges Anclicken der Pfeile (beim
- Verschieben der Markierung wird automatisch gescrollt) als auch durch
- Verschieben des Balkens verändert werden. Ein Anclicken der grauen
- Randbereiche verschiebt den Ausschnitt um jeweils max. acht Einträge
- nach oben oder unten.
-
- Hinzufügen :
- Durch Betätigen der Return-Taste oder durch Anclicken des HINZUFÜGEN-
- Buttons werden zunächst alle Kleinbuchstaben in der Benennung in
- Großbuchstaben gewandelt. Dann wird überprüft, ob alle Zeichen gültig
- sind, ob die eingegebene Benennung noch nicht definiert wurde und ob
- die angegebenen Bereichsgrenzen auch innerhalb des Arbeitsblattes
- liegen. Ist dies der Fall, so wird die Benennung an die interne Liste
- angehängt, andernfalls erfolgt eine jeweils entsprechende Fehlermel-
- dung. Ist im Übersichtsfeld noch ein freier Eintrag vorhanden , so wird
- die neue Benennung auch angezeigt, ansonsten macht sie sich durch ein
- Schrumpfen des Balkens bemerkbar.
-
- Löschen :
- Nach Click auf den LÖSCHEN-Button wird die markierte Benennung aus der
- Liste getilgt. Die Eingabefelder werden jedoch nicht gelöscht.
-
- Fertig :
- Nach Anclicken des FERTIG-Buttons wird die Dialogbox geschlossen. Der
- Inhalt der Eingabefelder wird dabei jedoch nicht übernommen, und ist
- somit verloren, da bei Anwahl des Menuepunktes immer automatisch die
- erste Benennung aus der Liste in die Eingabefelder übernommen wird.
-
- 4. 9. Durchrechnen (F8)
- Nach einer Bereichsabfrage werden alle Ausdrücke, die sich in Zellen im
- angegebenen Bereich befinden, durchgerechnet, die Ergebnisse werden
- gespeichert und dargestellt.
-
- 4.10. Nachberechnung (F9)
- CIA führt auf Wunsch nach jeder Ausdruckseingabe eine vollautomatische
- Nachberechnung eines bestimmten Bereichs des Arbeitsblattes durch.
- Dazu muß in der Dialogbox, die nach Anwahl dieser Funktion erscheint,
- die Automatik eingeschalten und der entsprechende Bereich gewählt
- werden.
- HINWEIS :
- Bei einem großen Bereich und/oder großer Iterationstiefe kann die
- Nachberechnung länger dauern. Es empfiehlt sich also, diese auf den
- angezeigten Ausschnitt oder auf die gerade bearbeitete Spalte oder
- Zeile zu begrenzen, das hängt aber natürlich von der Anwendung ab.
-
- 4.11. Iterationen (CONTROL + I)
- Wird ein Bereich des Arbeitsblattes oder das ganze Arbeitsblatt
- durchgerechnet, so wird immer von links oben nach rechts unten
- gerechnet. Dabei ergibt sich folgende Problematik : Greift ein Ausdruck
- auf eine Zelle zu, die sich rechts und/oder unterhalb von der Zelle
- befindet, die den zu berechnenden Ausdruck enthält, so kann das
- Ergebnis verfälscht werden. Denn wer garantiert, daß das Ergebnis in
- der Zelle, auf die zugegriffen wird, noch gültig ist ? Als Lösung
- dieses Problems bietet sich eine nochmalige Berechnung desselben an.
- Doch was, wenn auch dieser Ausdruck auf andere Zellen zugreift ? Hier
- liegt es am Anwender zu bestimmen, wie 'tief' gerechnet werden soll.
-
- Nach Anwahl dieser Funktion erscheint also eine Dialogbox, in der die
- Iterationstiefe (0-99) eingestellt werden kann. Die Tiefe Null bedeu-
- tet, daß bei Zellenzugriffen einfach mit den gespeicherten Ergebnissen
- weitergerechnet wird, eins daß bei Zellenzugriffen der Ausdruck, auf
- den zugegriffen werden soll, berechnet wird, greift jedoch dieser
- Ausdruck wiederum auf andere Zellen zu, so wird mit den in diesen
- Zellen gespeicherten Ergebnissen weitergerechnet, usw...
-
- Internas :
- CIA realisiert dies durch einen internen Zähler : Bei jedem Zellenzu-
- griff wird der Wert des Zählers, falls dieser noch kleiner als die
- max. Iterationstiefe ist, um eins erhöht und der Ausdruck berechnet.
- Ist die Berechnung erfolgt, so wird der Zähler wieder um eins er-
- niedrigt. War die max. Iterationstiefe schon erreicht, so wird nur auf
- das Ergebnis zugegriffen.
-
- Beeinflussung der Geschwindigkeit :
- Eine größere Iterationstiefe zieht natürlich auch eine Verlangsamung
- des Berechnungsvorgangs nach sich. Ab einer vom jeweiligen Arbeitsblatt
- abhängigen Iterationstiefe wird jedoch keine Verlangsamung mehr fest-
- zustellen sein, da ja wohl irgendwann auf Zellen zugegriffen werden
- muß, die selbst keine anderen Zellen mehr ansprechen.
-
- Rekursion :
- Rekursion, d.h. Zellen greifen gegenseitig aufeinander zu, ist zwar
- uneingeschränkt möglich, sollte jedoch vermieden werden, da sich die
- Ergebnisse gegenseitig beeinflussen und die Endergebnisse stark von der
- gewählten Iterationstiefe abhängig sind. Das ist dann kaum mehr
- durchschaubar.
-
- 4.12. Suchen (CONTROL + F)
- Diese Funktion erlaubt es, ab der Cursorposition nach einem bestimmten
- String oder nach einem Fehler zu suchen. Nach Anwahl erscheint eine
- Dialogbox, in der der zu suchende String (max. 20 Zeichen) und/oder der
- zu suchende Fehler definiert werden können. Soll kein bestimmter
- Fehler gesucht werden, so genügt es, Null einzugeben. Um zu bestimmen,
- was gesucht werden soll, genügt es, das jeweilige Eingabefeld per Maus
- zu selektieren. Außerdem kann noch die Suchrichtung und ob die
- Groß/Kleinschreibung beachtet werden soll, eingestellt werden.
-
- Der Suchvorgang :
- Zunächst wird die gewählte Suchrichtung an die Cursorposition angepaßt,
- d.h. befindet sich der Cursor z.B. auf Zelle [1,1] und die Suchrichtung
- 'nach links, dann nach oben' ist eingestellt, so wird die Richtung
- automatisch umgekehrt.
- Wird nach einem String gesucht, so werden alle Zellen mit Strings,
- Ausdrücken und Trennzeichen durchsucht.
- Wird nach einem Fehler gesucht, so werden alle Zellen mit mathematichen
- Inhalt und nicht-bestimmten bzw. nicht-bestimmbaren Ergebnis beachtet.
- Wurde das Gesuchte gefunden, so wird der Cursor auf die Fundstelle
- gesetzt, ansonsten wird eine Meldung ausgegeben.
-
- 4.13. Erneut suchen (CONTROL + A)
- Diese Funktion bewirkt die Auslösung eines Suchvorganges wie bei
- 'Suchen' beschrieben.
-
- 4.14. Fehler zeigen (CONTROL + D)
- Diese Funktion zeigt, falls sich der Cursor auf einer Zelle mit nicht-
- bestimmbaren Ergebnis befindet, den gespeicherten Fehler im Klartext
- an.
-
- 5. DAS 'BLOCK'-MENUE
-
- Zur Blockdefinition und -darstellung :
- In jedem Arbeitsblatt kann ein Block definiert werden, entweder per
- Maus oder per Tastatur (s. unten). Die Koordinaten des Blockstartes und
- des Blockendes können der Info-Zeile des Fensters, in dem sich das
- jeweilige Arbeitsblatt befindet, entnommen werden. Zellen, die zu dem
- Block gehören, werden mit schattiertem Untergrund dargestellt. Diese
- Markierung erfolgt allerdings erst, wenn Blockstart und Blockende
- definiert sind. Zellen, die innerhalb eines Blockes liegen, aber von
- Zellen, die links oder oberhalb des Blockes liegen, überlappt werden,
- erhalten keine Markierung. Zellen, die rechts oder unterhalb des
- Blockes liegen und von Zellen, die sich innerhalb des Blockes befinden,
- überlappt werden, werden markiert.
-
- Blockdefinition per Maus :
- Ein Block kann mit Hilfe der Maus definiert werden, indem man die
- Zelle, in der der Blockstart liegen soll, anclickt, dann mit ge-
- drückter linker Maustaste ein Rechteck bis zu der Zelle aufzieht, in
- der das Blockende liegen soll, und schließlich die Maustaste losläßt.
-
- Blockdefinition per Tastatur :
- Diese kann per CONTROL + S (für Blockstart) und CONTROL + E (für
- Blockende) vorgenommen werden (s. unten). Dabei ist Folgendes zu
- beachten : Wird der Blockstart rechts und/oder unterhalb des Blockendes
- oder wird das Blockende links und/oder oberhalb des Blockstartes
- definiert, so werden Blockstart und Blockende vertauscht.
-
- 5. 1. Bereich -> Block (F10)
- Nach einer Bereichsabfrage wird der gewählte Bereich als Block defi-
- niert.
-
- 5. 2. Blockstart definieren (CONTROL + S)
- Diese Funktion legt den Blockstart in die Zelle, in der der Cursor
- steht.
-
- 5. 3. Blockende definieren (CONTROL + E)
- Diese Funktion legt das Blockende in die Zelle, in der sich der Cursor
- befindet.
-
- 5. 4. Demarkieren (CONTROL + H)
- Diese Funktion löscht die Markierungen des Blockes.
-
- 5. 5. Kopieren (CONTROL + C)
- Diese Funktion kopiert den Block, falls vorhanden, an die aktuelle
- Cursorposition. Die Struktur des Arbeitsblattes wird dabei nicht
- verändert, d.h. die Zellenbegrenzungen der kopierten Zellen werden an
- die 'örtlichen Gegebenheiten' angepaßt. Blockstart und Blockende werden
- nicht verändert, die Markierung bleibt erhalten.
-
- 5. 6. Kopieren nach (ALTERNATE + C)
- Diese Funktion ermöglicht es, einen Block aus einem Arbeitsblatt in ein
- anderes zu kopieren, sie ersetzt somit ein Funktionspaar wie
- 'Ausschneiden' und 'Einfügen'.
- Falls sich also in dem aktuellen Arbeitsblatt ein Block befindet,
- erscheint eine Dialogbox, in der das Quell- und das Zielarbeitsblatt
- festgelegt werden können. Nach Bestätigung durch OK wird der Block im
- Quellarbeitsblatt an die aktuelle Cursorposition im Zielarbeitsblatt
- kopiert, die Zellenbegrenzungen werden wiederum angepaßt. Der Block im
- Quellarbeitsblatt bleibt unverändert.
-
- 5. 7. Verschieben (CONTROL + M)
- Diese Funktion verschiebt den Block, falls vorhanden, an die aktuelle
- Cursorposition, d.h. der Inhalt der Zellen im Block wird in einem
- Arbeitsgang kopiert und gelöscht. Die Struktur des Arbeitsblattes wird
- dabei nicht verändert, der Block wird demarkiert.
-
- 5. 8. Verschieben nach (ALTERNATE + M)
- Falls sich in dem aktuellen Arbeitsblatt ein Block befindet, erscheint
- eine Dialogbox, in der das Quell- und das Zielarbeitsblatt festgelegt
- werden können. Nach Bestätigung durch OK wird der Block im Quellar-
- beitsblatt an die aktuelle Cursorposition im Zielarbeitsblatt verscho-
- ben, d.h. der Inhalt der Zellen im Block im Quellarbeitsblatt wird in
- einem Arbeitsgang kopiert und gelöscht, die Zellenbegrenzungen werden
- an die Struktur des Zielarbeitsblattes angepaßt. Der Block im Quellar-
- beitsblatt wird demarkiert.
-
- 5. 9. Bearbeiten (CONTROL + W)
- Diese Funktion ist in dieser Programmversion noch nicht implementiert.
-
- 6. DIE CURSORSTEUERUNG
-
- 6. 1. Cursorsteuerung per Maus
- Es gibt zwei Möglichkeiten, den Cursor per Maus in eine bestimmte
- sichtbare Zelle zu setzen :
- 1. Man clickt einfach in die gewünschte Zelle.
- 2. Zuerst clickt man den gewünschten Spaltenindex, dann den gewünschten
- Zeilenindex an (oder auch umgekehrt).
-
- 6. 2. Cursorsteuerung per Tastatur
-
- Legende :
- ~ ... mit Shifttaste
- ^ ... mit Controltaste
- l ... Cursortaste links
- r ... Cursortaste rechts
- o ... Cursortaste oben
- u ... Cursortaste unten
-
- Kombination : Funktion :
- l Bewegt den Cursor um eine Zelle nach links.
- r Bewegt den Cursor um eine Zelle nach rechts.
- o Bewegt den Cursor um eine Zelle nach oben.
- u, Return Bewegt den Cursor um eine Zelle nach unten.
-
- ~l Verschiebt den angezeigten Ausschnitt um eine Seite
- nach links.
- ~r Verschiebt den angezeigten Ausschnitt um eine Seite
- nach rechts.
- ~o Verschiebt den angezeigten Ausschnitt um eine Seite
- nach oben.
- ~u Verschiebt den angezeigten Ausschnitt um eine Seite
- nach unten.
-
- ^l Setzt den Cursor in die erste Spalte des Arbeits-
- blattes.
- ^r Setzt den Cursor in die letzte Spalte des Arbeits-
- blattes.
- ^o Setzt den Cursor in die erste Zeile des Arbeits-
- blattes.
- ^u Setzt den Cursor in die letzte Zeile des Arbeits-
- blattes.
-
- Clr/Home Setzt den Cursor in die erste sichtbare Zelle links
- oben.
- ^Clr/Home Setzt den Cursor in Zelle [1,1].
-
- 7. WEITERE MAUSKOMMANDOS
-
- 7. 1. Zelle kopieren
- Mit Hilfe dieser Funktion kann man den Inhalt der Cursorzelle in eine
- andere beliebige sichtbare Zelle kopieren. Dazu muß man die linke
- SHIFT-Taste drücken und die gewünschte Zielzelle gleichzeitig anclic-
- ken.
-
- 7. 2. Zelle verschieben
- Diese Funktion verschiebt den Inhalt der Cursorzelle in eine beliebige
- andere sichtbare Zelle, d.h. der Inhalt wird in einem Arbeitsgang
- kopiert und gelöscht. Dies geschieht nach gleichzeitigem Drücken der
- rechten SHIFT-Taste und dem Anclicken der gewünschten Zielzelle.
-
- 7. 3. Zelle löschen
- Diese Funktion löscht bei gleichzeitigem Drücken der ALTERNATE-Taste
- und dem Anclicken der gewünschten Zelle deren Inhalt.
-
- 7. 4. Zelle durchrechnen
- Diese Funktion rechnet bei gleichzeitigem Drücken der CONTROL-Taste und
- dem Anclicken der gewünschten Zelle deren Inhalt, falls mathematischer
- Natur, durch, speichert das Ergebnis und stellt dieses dar.
-
- 8. TIP(S) & TRICK(S)
-
- 8. 1. Arbeitsblattgröße verändern
- Sollte sich nach einiger Zeit herausstellen, daß man sich beim Anlegen
- des Arbeitsblattes bei dessen Dimensionen verschätzt hat, so kann die
- Größe desselben folgendermaßen verändert werden :
-
- 1. Man legt als Zwischenspeicher ein neues Arbeitsblatt mit den
- gewünschten Dimensionen an. Der Dateiname ist dabei völlig belang-
- los, das Arbeitsblatt wird später sowieso nicht unter diesem
- gespeichert.
- 2. Man schaltet auf das 'mißratene' Arbeitsblatt um, und definiert
- dessen Inhalt als Block. Der Block muß auf alle Fälle in das neue
- Arbeitsblatt passen !
- 3. Man verschiebt oder kopiert diesen Block in das neue Arbeitsblatt
- (s. Kopieren nach..., Verschieben nach...).
- 4. Man speichert das neue Arbeitsblatt unter dem Namen des alten
- Arbeitsblattes. Das neue Arbeitsblatt kann dann wieder geschlossen
- werden.
- 5. Man lädt das Arbeitsblatt mit den neuen Dimensionen und ersetzt
- damit das alte Arbeitsblatt.
-
- 9. FEHLER UND FEHLERMELDUNGEN
-
- 9. 1. Allgemeines
- Sollte während des Programmablaufs ein Fehler auftreten, welcher Art
- auch immer, so wird dieser in einer Alert-Box angezeigt. Die Funktion,
- welche den Fehler ausgelöst hat, bricht die Ausführung ab.
-
- 9. 2. Liste der Fehlermeldungen
- 1 Keine Workstation mehr verfügbar.
- 2 Fehler bei RSRC_LOAD.
- Das Resource-File ist nicht vorhanden oder es steht zu wenig
- Arbeitsspeicher zur Verfügung.
- 3 Das RSC-File ist defekt.
- 4 Ungültige Eingabe.
- 5 Kein Fenster mehr übrig.
- 8 Keine CIA-Datei.
- 9 Ungültige Versionsnummer.
- Es wurde versucht, Daten einer neueren Version als dieser zu
- laden.
- 10 Operand erwartet.
- 11 Operator erwartet.
- 12 Koordinaten erwartet.
- 13 Bezeichner erwartet.
- 14 Dateipfad erwartet.
- 21 '(' erwartet.
- 22 ')' erwartet.
- 23 '[' erwartet.
- 24 ']' erwartet.
- 25 '{' erwartet.
- 26 '}' erwartet.
- 27 ':=' erwartet.
- 28 Stringende erwartet.
- 29 ',' erwartet.
- 30 '..' erwartet.
- 31 Hochkomma erwartet.
- 40 Die Wurzelfunktion ist in R nur für Zahlen>=0 erklärt.
- 41 Logarithmusfunktionen nur für Zahlen>0.
- 42 Die Basis zur Logarithmusberechnung muß größer 0 und ungleich 1
- sein.
- 44 Die Division durch 0 ist nicht erklärt.
- 45 Zur Berechnung der Standardabweichung werden mind. 2 Werte benö-
- tigt.
- 46 Zugriff auf eine nicht definierte Zelle.
- 47 Zugriff auf eine Zelle mit nicht-arithmetischen Inhalt.
- 48 Zugriff auf eine Zelle mit nicht bestimmbaren Ergebnis.
- Der Inhalt der Zelle, auf die zugegegriffen werden soll, ist als
- fehlerhaft oder nicht bestimmbar gekennzeichnet (Anzeige von *
- ERROR xx *) und die vorgegebene Iterationstiefe erlaubt es
- nicht, den Ausdruck noch einmal zu berechnen.
- 49 Stacküberlauf.
- Der zu berechnende Ausdruck ist zu komplex.
- 50 Arbeitsblatt ist zu klein.
- Dieser Fehler tritt auf, wenn beim Kopieren, Verschieben oder
- Laden von Blöcken oder beim Laden von CVS- oder DIF-Dateien der
- Cursor so positioniert wurde, daß der zu ladende Block das
- Arbeitsblatt rechts und/oder unten sozusagen überlappen würde.
- 51 Falscher Dateityp.
- Wird versucht, eine Datei zu laden, die zwar von CIA angelegt
- wurde, jedoch nicht dem erwarteten Typ (s bei 'Datenformate')
- entspricht, so erscheint diese Meldung.
- HINWEIS :
- Die Extension des Dateinamens (z.B. 'CT', 'PST') hat nichts mit
- dem Dateityp zu tun, sie erleichtert lediglich die Zuordnung
- einer Datei zu einem Typ. Die in dieser Anleitung vorgeschlage-
- nen Extensionen sind an sich völlig unverbindlich, ihre Verwen-
- dung ist jedoch zu empfehlen, da CIA auch mit diesen arbeitet.
- 52 Papierformat ist zu klein.
- Das gewählte Papierformat ist so klein, daß es nicht möglich
- ist, auch nur eine Zelle in voller Breite und Höhe zu drucken.
- 53 Drucken ohne Druckertreiber ist nicht möglich.
- 54 Drucker ist OFF LINE geschaltet.
- 55 Dieses Programm läuft nur in mittlerer oder hoher Auflösung.
- 56 Block ist nicht definiert.
- 57 String ist zu lang.
- 58 Fehlerhafte CVS-Datei.
- 59 Beim Durchrechnen ist ein/sind Fehler aufgetreten.
- 60 Beim Nachrechnen ist ein/sind Fehler aufgetreten.
- 61 Funktion ist nicht implementiert.
- CIA besitzt einige noch nicht dokumentierte Funktionen, die
- zwar bereits eingegeben, jedoch noch nicht berechnet werden
- können.
- 62 Nichts mehr gefunden.
- 63 Bezeichner ist bereits definiert.
- 64 Bezeichner ist nicht definiert.
- 65 Unbekannter Operator.
- 66 Unbekannte Funktion.
- 67 Fehlerhafte DIF-Datei.
- 68 Ausdruck ist zu lang.
- 10. INTERNAS
-
- 10. 1. Dateikennungen
- CIA speichert im Kopf einer jeden Datei eine Kennung, d.h. beim Laden
- einer Datei kann erkannt werden, ob diese wirklich von CIA erzeugt
- worden ist und somit verarbeitet werden kann.
-
- 10. 2. Versionsnummern
- Zusätzlich zur Kennung stehen im Kopf einer jeden Datei auch noch zwei
- Versionsnummern : Erstens die des Programms und zweitens die des
- Datenformats. Mit deren Hilfe ist es möglich, ältere Datenformate zu
- erkennen und automatisch zu konvertieren. Beim Versuch, Daten zu laden,
- die von einer neueren Programmversion als dieser gespeichert wurden,
- kommt es zu einer Fehlermeldung.
-
- 10. 3. Konfiguration und Programmstart
- CIA läuft in hoher und mittlerer Auflösung. Das Programm kann aus dem
- Hauptverzeichnis oder aus einem Ordner gestartet werden. Vor dem Start
- sollten mind. 250 KB Speicher zur Verfügung stehen. Nach dem Pro-
- grammstart werden automatisch der erste Druckerkonfiguration
- (Extension 'CFG') und die erste Datei mit Druckervoreinstellungen
- (Extension 'PST'), die im Hauptverzeichnis oder in dem Ordner, aus dem
- das Programm gestartet wurde, gefunden werden, geladen.
-
- 10. 4. Datenformate
-
- Header für alle Systemdateien :
- Jede Systemdatei (.CT, .BLK, .CFG, .PST) besitzt einen folgendermaßen
- aufgebauten Header :
-
- 1. String : 'CIA'
- 2. Byte : Dateityp :
- 0=Arbeitsblatt (.CT)
- 1=Block (.BLK)
- 2=Druckerkonfiguration (.CFG)
- 3=Druckervoreinstellungen (.PST)
- 3. Word : Programmversion (jetzt $110)
- 4. Word : Datenformatversion (jetzt 5)
-
- Das Arbeitsblatt-Format :
- 1. Word : Anzahl der Zellen in der Horizontalen
- 2. Word : Anzahl der Zellen in der Vertikalen
- 3. Word : Anzahl der Benennungen
- 4. Word : Aktuelle Spalte
- 5. Word : Aktuelle Zeile
- 6. Word : Zahlendarstellung :
- b0=0 => Ergebnisdarstellung
- b0=1 => Ausdrucksdarstellung
- b1=0 => Deutsche Zahlendarstellung
- b1=1 => Amerikanische Zahlendarstellung
- b2=0 => Vorzeichen vor dem Ergebnis ausgeben
- b2=1 => Vorzeichen hinter dem Ergebnis ausgeben
- 7. Word : Schriftgröße :
- 1= 6x 6 (Iconschrift)
- 2= 8x 8 (Standard-Color-Schrift)
- 3= 8x16 (Standard-Monochrom-Schrift)
- 4=16x16 (Riesenschrift)
- 8. Word : Darzustellende Zellenbegrenzungen :
- b0=1 => Vertikale Begrenzungen darstellen
- b1=1 => Horizontale Begrenzungen darstellen
- 9. Word : Nachberechnung-Automatik-Flag :
- 0=Automatik ist aus
- -1=Automatik ist an
- 10. Word : Bereich, in dem eine Nachberechnung erfolgen soll :
- 0=Arbeitsblatt
- 1=Block
- 2=Display
- 3=Spalte
- 4=Zeile
- 5=Zelle
- 11. Word : Anzahl der Iterationen
- 12. Word : Horizontaler Blockstart
- 13. Word : Vertikaler Blockstart
- 14. Word : Horizontales Blockende
- 15. Word : Vertikales Blockende
-
- 16. Long : Länge des folgenden Blocks, in dem die Spaltenbreiten und
- die Anzahl der Nachkommazellen gespeichert sind. Die
- Anzahl der Elemente entspricht der Anzahl der Zellen in
- der Horizontalen.
-
- AUFBAU EINES LISTENELEMENTS :
- 1. Word : Spaltenbreite in Zeichen
- 2. Word : Anzahl der Nachkommastellen
-
- 17. Long : Länge des folgenden Blocks, in dem die Zeilenhöhen und
- Offsets zur Speicherverwaltung gespeichert sind. Die
- Anzahl der Elemente entspricht der Anzahl der Zellen in
- der Vertikalen.
-
- AUFBAU EINES LISTENELEMENTS :
- 1. Word : Zeilenhöhe in Textzeilen.
- 2. Long : Offset vom Blockstart zur ersten Zelle in dieser Zeile.
-
- 18. Long : Länge des folgenden Blocks, in dem die eigentlichen Zellen
- gespeichert sind. Die Anzahl der Listenelemente entspricht
- der Anzahl der Zellen. In der Liste stehen zuerst alle
- Zellen der 1. Zeile, dann die der 2. Zeile, usw...
-
- AUFBAU EINES LISTENELEMENTS :
- 1. Word : Länge des Listenelements einschließlich dieses Words.
- 2. Word : Zellenflag :
- b0-b8 : Unbenutzt
- b9=1 => Fehler : Die Zelle enthält einen Ausdruck, der
- nicht berechnet werden konnte.
- b10=1=> Zelleninhalt ist geschützt
- b11=1=> Zelleninhalt ist sichtbar
- b12-b15 : Zellentyp :
- 0=Leerzelle
- 1=Ausdruck
- 2=String
- 3=Trennzelle
- 3. Word : Zellenstatus :
- b0-b1 : Unbenutzt
- b2=1 => Vertikale Begrenzung rechts...
- b3=1 => Horizontale Begrenzung unten...
- b4=1 => Vertikale Begrenzung links...
- b5=1 => Horizontale Begrenzung oben...
- ...ist vorhanden.
- b6-b7 : Textausrichtung :
- 0=linksbündig
- 1=rechtsbündig
- 2=zentriert
- 3=formatiert
- b8-b9 : Schriftfarbe (0-3)
- b10-b15 : Schriftstil :
- b10=1 => fett
- b11=1 => hell
- b12=1 => kursiv
- b13=1 => unterstrichen
- (b14=1 => outlined
- b15=1 => schattiert)
-
- 4. Word : x-Position der Zelle im AB (Basis 1)
- 5. Word : y-Position der Zelle im AB (Basis 1)
- 6. Word : Breite der Zelle (inkl. der Breiten aller nach rechts
- überlappten Zellen !) in Zeichen
- 7. Word : Höhe der Zelle in Textzeilen
-
- Dann folgt der vom Zellentyp abhängige Eintrag :
-
- Leerzelle : Gar nix
- Ausdruck : 1. double float (IEEE) : Ergebnis oder Fehlernummer
- 2. String : Der tokenisierte Ausdruck, nullterminiert
- 3. Falls notwendig, ein Nullbyte zum Auffüllen.
- String : 1. String : Der String, nullterminiert
- 2. Falls notwendig, ein Nullbyte zum Auffüllen.
- Trennzelle : 1. Word : Das Trennzeichen im Lo-Byte
-
- 19. Long : Länge des folgenden Blocks, in dem die Benennungen gespei-
- chert sind. Die Anzahl der Listenelemente enspricht der
- der Benennungen.
-
- AUFBAU EINES LISTENELEMENTS :
- 1. Word : Länge des Listenelements einschließlich dieses Words.
-
- Dann folgen die Bereichsgrenzen :
-
- 2. Word : Zelle links oben, x-Koordinate
- 3. Word : Zelle links oben, y-Koordinate
- 4. Word : Zelle rechts unten, x-Koordinate
- 5. Word : Zelle rechts unten, y-Koordinate
-
- Anschließend die eigentliche Benennung :
-
- 1. String : Die Benennung, nullterminiert
- 2. Falls notwendig, ein Nullbyte zum Auffüllen.
-
-
- Das Block-Format :
- 1. Word : Anzahl der Zellen in der Horizontalen
- 2. Word : Anzahl der Zellen in der Vertikalen
-
- Anschließend folgt eine Liste, die alle zum Block gehörigen Zellen
- beinhaltet. Zum Aufbau eines Elements, s. oben.
-
- Das Konfigurations-Format :
- In dieser Datei steht eine Liste mit allen Druckersequenzen:
-
- AUFBAU EINES LISTENELEMENTS :
- 1. Byte : Anzahl der folgenden Codes
- 2. Byte : Ein Zeichen, für das die folgende Sequenz zum Drucker
- geschickt werden soll.
-
- Eine Sequenz darf max. 254 Bytes lang sein.
-
- Das Druckervoreinstellungs-Format :
- 1. Word : Port :
- 1=Centronics
- 2=RS 232
- 2. Word : Papier :
- 1=Einzelpapier
- 2=Endlospapier
- 3. Word : Schrift :
- 1=Standardschrift
- 2=NLQ-Schrift
- 3=Schmalschrift
- 4. Word : Spaltenindizes :
- 0=Drucken
- -1=Nicht drucken
- 5. Word : Zeilenindizes :
- 0=Drucken
- -1=Nicht drucken
- 6. Word : Zeichen/Seite
- 7. Word : Zeilen/Seite
- 8. Word : Leerzeilen am Seitenende
- 9. Word : Offset zum linken Rand
-
- Das DIF-Format :
- Die einzelnen Datenfelder werden durch ein Carriage Return ($0d),
- gefolgt von einem Linefeed ($0a), voneinander getrennt.
-
- Das CVS-Format :
- Die einzelnen Datenfelder werden in Hochkommata eingeschlossen ge-
- schrieben, die Felder innerhalb eines Datensatzes werden durch ein
- Komma voneinander getrennt. Die Trennung der Datensätze erfolgt durch
- ein Carriage Return ($0d), gefolgt von einem Linefeed ($0a).
-
- 11. LISTE DER FUNKTIONEN
-
- 11. 1. Exponential- und Logarithmusfunktionen
-
- EXP(x)
- f(x)=ex
- Df=R, Wf=R+
- Berechnet die Potenz mit der Basis e und dem Exponenten x.
- EXP(1)=e≈2.7183
-
- LOG(a,b)
- fb(a)=logba
- a ∈ R+, b ∈ R+\{1}, Wf=R
- Berechnet den Logarithmus von a zur Basis b.
- LOG(32,2)=5
- LOG(PI()^-5,PI())=-5
-
- LD(a)=LOG(a,2)
- f(a)=ld a=log2a
- a ∈ R+, Wf=R
- Berechnet den dualen Logarithmus von a.
- LD(2)=1
- LD(32767)=15
-
- LG(a)=LOG(a,10)
- f(a)=lg a=log10a
- a ∈ R+, Wf=R
- Berechnet den dekadischen Logarithmus von a.
- LG(10)=1
- LG(1E+123)=123
-
- LN(a)=LOG(a,E())
- f(a)=ln a=logea
- a ∈ R+, Wf=R
- Berechnet den natürlichen Logarithmus von a.
- LN(1)=0
- LN(E())=1
- LN(E()^5)=5
-
- 11. 2. Trigonometrische Funktionen
-
- ARC(a)
- f(α)=(α/180°)π
- Df=R, Wf=[0;2π[
- Rechnet den im Gradmaß angegebenen Winkel ins Bogenmaß um.
- ARC(90)=PI()/2≈1.5708
- ARC(180)=PI()≈3.1416
-
- DEG(x)
- f(x)=(x/π)180°
- Df=R, Wf=[0;359]
- Rechnet den im Bogenmaß angegebenen Winkel ins Gradmaß um.
- DEG(PI())=180
- DEG(2*PI())=360
-
- SIN(x)
- f(x)=sin x
- Df=R, Wf=[-1;+1]
- Berechnet den Sinus des im Bogenmaß angegebenen Winkels.
- SIN(PI())=0
- SIN(ARC(45))=SIN(PI()/4)≈0.7071
-
- COS(x)
- f(x)=cos x
- Df=R, Wf=[-1;+1]
- Berechnet den Cosinus des im Bogenmaß angegebenen Winkels.
- COS(PI())=-1
- COS(ARC(45))=COS(PI()/4)≈0.7071
-
- TAN(x)
- f(x)=tan x
- Df=R\{x|x=kπ+½π}, Wf=R
- Berechnet den Tangens des im Bogenmaß angegebenen Winkels.
- TAN(PI())=0
- TAN(ARC(135))=-1
-
- COT(x)
- f(x)=cot x
- Df=R\{x|x=kπ}, Wf=R
- Berechnet den Cotangens des im Bogenmaß angegebenen Winkels.
- COT(PI()/2)=1.42108547152E-14, cot(½π)=0 !
- COT(ARC(135))=-1
-
- ATN(x)
- f(x)=arctan x
- Df=R, Wf=]-½π;½π[
- Berechnet den Arcustangens des Arguments.
- ATN(TAN(ARC(45)))=ARC(45)=PI()/4≈0.7854
- DEG(ATN(-1))=-45
-
- 11. 3. Sonstige mathematische Funktionen
-
- INT(x)
- f(x)=[x]
- Df=R, Wf=Z
- Rundet das Argument auf die nächstniedrigere ganze Zahl ab.
- INT(3.678989)=3
- INT(-3.678989)=-4
-
- ABS(x)
- f(x)=|x|
- Df=R, Wf=[0;+∞[
- Ermittelt den Betrag des Arguments :
- x<0 => |x|=-x
- x=0 => |x|=0
- x>0 => |x|=x
- ABS(5)=5
- ABS(-5)=5
-
- SQR(x)
- f(x)=√x
- Df=[0;+∞[, Wf=Df=[0;+∞[
- Berechnet die Quadratwurzel des Arguments.
- SQR(4)=2
- SQR(5^2)=5
-
- SGN(x)
- f(x)=sgn x
- Df=R, Wf={-1,0,1}
- Ermittelt das Vorzeichen des Arguments :
- x<0 => sgn x=-1
- x=0 => sgn x=0
- x>0 => sgn x=1
- SGN(-5)=-1
- SGN(5)=1
-
- 11. 4. Rundungsfunktionen
-
- INT(x)
- s. bei 10.3.
-
- FIX(x)
- Schneidet den Nachkommateil des Arguments ab.
- FIX(3.678989)=3
- FIX(-3.678989)=-3
-
- ROUND(x,n)
- Rundet das Argument x auf n Nachkommastellen auf.
- ROUND(1.79,1)=1.8
- ROUND(-1.79,1)=-1.8
-
- 11. 5. Logische Funktionen
-
- Vorbemerkung :
- Der Ergebnis einer logischen Funktion kann nur wahr (TRUE=-1) oder
- falsch (FALSE=0) sein.
-
- ODD(x)
- Gibt TRUE zurück, falls das Argument eine ungerade Zahl ist.
- ODD(1)=-1
- ODD(2)=0
-
- EVEN(x)
- Gibt TRUE zurück, falls das Argument eine gerade Zahl ist.
- EVEN(1)=0
- EVEN(2)=-1
-
- 11. 6. Konstanten
-
- E()
- Übergibt die Euler'sche Zahl.
- E()=2.7182818285
-
- PI()
- Übergibt die Kreiszahl.
- PI()=3.1415926536
-
- 11. 7. Statistikfunktionen
-
- Vorbemerkung :
- Alle im folgenden aufgeführten Statistikfunktionen benötigen als Argu-
- ment den Bereich des Arbeitsblattes, in dem gearbeitet werden soll.
- Dieser kann in der Form [x1,y1]..[x2,y2] oder mittels einer Benennung
- in geschwungenen Klammern angegeben werden, z.B. {TEILSUMMEN}.
- Nach der Bereichsangabe kann nach einem Komma auch noch ein in
- Hochkommata eingeschlossener Dateiname folgen (s. bei Zelle editie-
- ren/Zugriff auf andere Arbeitsblätter).
- Diese Angaben werden bei der folgenden Funktionsbeschreibung allgemein
- mit area abgekürzt.
- Beispiele :
- SUM([2,2]..[10,5])
- CNT({ERGEBNISSE},"C:\1989\FEBRUAR")
-
- AVG(area)
- Berechnet den Durchschnitt der im angegebenen Bereich gespeicherten
- Ergebnisse.
-
- CNT(area)
- Ermittelt die Anzahl der Ausdrücke im angegebenen Bereich.
-
- MAX(area)
- Ermittelt das größte im angegebenen Bereich gespeicherte Ergebnis.
-
- MIN(area)
- Ermittelt das kleinste im angegebenen Bereich gespeicherte Ergebnis.
-
- SUM(area)
- Berechnet die Summe aller im angegebenen Bereich gespeicherten Ergeb-
- nisse.
-
- STD(area)
- Berechnet die Standardabweichung der im angegebenen Bereich gespeicher-
- ten Ergebnisse.
-
- VRZ(area)
- Berechnet die Varianz der im angegebenen Bereich gespeicherten Ergeb-
- nisse.
-
- HINWEIS :
- Bis auf CNT(area) brechen alle Statistikfunktionen die Ausführung mit
- einer Fehlermeldung ab, wenn sie auf einen Ausdruck treffen, der nicht
- berechnet werden kann bzw. konnte.
-
- 11. 8. Arbeitsblattfunktionen
-
- COL()
- Übergibt die Spalte, in der sich der Ausdruck, der gerade berechnet
- wird, befindet.
-
- LINE()
- Übergibt die Zeile, in der sich der Ausdruck, der gerade berechnet
- wird, befindet.
-
- MAXCOL()
- Übergibt die Anzahl der Spalten.
-
- MAXLINE()
- Übergibt die Anzahl der Zeilen.
-
- 11. 9. Sonstige nicht-mathematische Funktionen
-
- RND(x)
- Ermittelt eine Zufallszahl zwischen 0 (inklusive) und dem Wert des
- Arguments (exklusive).
-
- 12. LISTE DER OPERATOREN
-
- 12. 1. Logische Operatoren (Priorität 1)
-
- Vorbemerkung :
- Mit logischen Operatoren werden normalerweise Wahrheitswerte
- (TRUE=wahr=-1, FALSE=falsch=0) miteinander verknüpft. Als Ergebnis wird
- wiederum ein Wahrheitswert ausgegeben. Im folgenden steht w für wahr
- und f für falsch.
-
- a AND b
- Konjunktion :
- (w AND w)=w
- (w AND f)=(f AND w)=(f AND f)=f
- Das Ergebnis von AND ist nur dann wahr, wenn beide Argumente wahr sind.
- (5==5 AND 0==0)=(w AND w)=w=-1
- (3>5 AND -1)=0=(f AND w)=f=0
-
- a OR b
- Disjunktion (nicht ausschließendes Oder) :
- (w OR w)=(w OR f)=(f OR w)=w
- (f OR f)=f
- Das Ergebnis von OR ist nur dann falsch, wenn beide Argumente falsch
- sind.
- (3>8 OR PI()==E())=(f OR f)=f=0
- (0 OR 0==0)=(f OR w)=w=-1
-
- a XOR b, a EOR b
- Exclusives (ausschließendes) Oder :
- (w XOR w)=(f XOR f)=f
- (w XOR f)=(f XOR w)=w
- Das Ergebnis von XOR ist dann falsch, wenn beide Argumente die gleichen
- Wahrheitswerte haben.
- (5==5 XOR 5==5)=(w XOR w)=f=0
- (5<>5 XOR 5<>5)=(f XOR f)=f=0
-
- 12. 2. Vergleichsoperatoren (Priorität 2)
-
- Vorbemerkung :
- Vergleichsoperatoren liefern als Ergebnis immer Wahrheitswerte
- (TRUE=wahr=-1, FALSE=falsch=0).
-
- a==b
- Das Ergebnis ist dann wahr, wenn a gleich b ist.
-
- a<=b, a=<b
- Das Ergebnis ist dann wahr, wenn a kleiner als oder gleich b ist.
-
- a>=b, a=>b
- Das Ergebnis ist dann wahr, wenn a größer als oder gleich b ist.
-
- a!=b, a<>b
- Das Ergebnis ist dann wahr, wenn a größer oder kleiner als b ist.
-
- a<b
- Das Ergebnis ist dann wahr, wenn a kleiner als b ist.
-
- a>b
- Das Ergebnis ist dann wahr, wenn a größer als b ist.
-
- 12. 3. Addition und Subtraktion (Priorität 3)
-
- a+b
- Addition.
-
- a-b
- Subtraktion.
-
- 12. 4. Multiplikation und Division (Priorität 4)
-
- a*b
- Multiplikation.
-
- a/b
- Division. b darf nicht Null sein.
-
- a\b
- Ganzzahldivision. b darf nicht Null sein.
- Es gilt : (a\b)=INT(a/b).
-
- a MOD b
- Berechnet den Rest der Ganzzahldivision a\b. b darf nicht Null sein. Es
- gilt : (a MOD b)=a-(a\b)*b.
-
- 12. 5. Potenzierung (Priorität 5)
-
- a^b
-
-